import useCommon from '@/store/common'
import request from '@/api/axios'
import {AxiosPromise} from 'axios'
import {DataRes} from '@/api/config'
/**
 * @description: 体检基本数据
 * @return {*}
 */
export interface BasePhysicalExamination {
  id?: string // 表单Id
  checkupRegisterId?: string // 体检登记表id
  dutyDoctorId?: string | null // 体检医生id
  dutyDoctorName?: string | null // 体检医生姓名
  checkupStatus?: number // 体检状态：0未检，1拒检，2已检
  sort?:number|null //排序 打印用字段
  createTime?:string //创建时间 打印用字段
}

// 单选多选元素的名称的值
export interface ChecksOrRadios {
  label: string // 名称
  value: string | number // 值
}

// 医生诊台详细数据
export interface DoctorDesk {
  id: string
  checkupNo: string // 体检号
  personName: string // 姓名
  gender: string // 性别
  age: number // 年龄
  idNo: string // 身份证
  tcmResult: string // 体质辨识结果
  address: string // 居住地址
  pastHistory: string // 既往史
  registerStatus: number // 体检状态
  notTestCategory: string // 未检大类
  notTestCategoryIds: Array<string> // 未检大类id
  registerDoctorId: string // 登记医生id
  registerDoctorName: string // 登记医生姓名
}

/**
 * @description: 获取医生诊台详情
 * @param {string} checkupRegisterId // 登记表id
 * @return {*}
 */
export const getDiagnosticTableDetail = (checkupRegisterId: string): AxiosPromise<DataRes<DoctorDesk>> => {
  return request({
    url: `/api/checkupRegister/diagnosticTable/detail/${checkupRegisterId}`,
    method: 'get'
  })
}

/**
 * @description:根据后端配置项判断字段是否需要校验
 * @param {*} field 字段
 * @return {*}
 */
export const fieldRequired = (field: string): boolean => {
  const {fields} = useCommon.setup().store
  return fields?.indexOf(field) > -1
}
